From fe26a9d2961fab05353fb0d8b1a38b1961dee8cf Mon Sep 17 00:00:00 2001 From: "kfraser@localhost.localdomain" Date: Mon, 4 Jun 2007 15:17:49 +0100 Subject: [PATCH] Use name instead of pid in QEMU logs. Change the logfile name generated by qemu-dm to use the pattern qemu-dm-[NAME].log instead of qemu-dm-[PID].log. This makes it easier for the adminsitrator to figure out which log corresponds to which guest (particularly after a crash where you no long know what PID the qemu-dm process for your guest had). It also prevents the number of log files from growing unbounded. Signed-off-by: Daniel P. Berrange --- tools/ioemu/target-i386-dm/exec-dm.c | 38 +++++++++++++--------------- tools/ioemu/vl.c | 10 +++++--- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/tools/ioemu/target-i386-dm/exec-dm.c b/tools/ioemu/target-i386-dm/exec-dm.c index 69525a9741..ccdbd73bf7 100644 --- a/tools/ioemu/target-i386-dm/exec-dm.c +++ b/tools/ioemu/target-i386-dm/exec-dm.c @@ -124,7 +124,6 @@ void *io_mem_opaque[IO_MEM_NB_ENTRIES]; static int io_mem_nb = 1; /* log support */ -char *logfilename = "/tmp/qemu.log"; FILE *logfile; int loglevel; @@ -166,29 +165,28 @@ void cpu_exec_init(CPUState *env) void cpu_set_log(int log_flags) { loglevel = log_flags; - if (!logfile) { - logfile = fopen(logfilename, "w"); - if (!logfile) { - perror(logfilename); - _exit(1); - } -#if !defined(CONFIG_SOFTMMU) - /* must avoid mmap() usage of glibc by setting a buffer "by hand" */ - { - static uint8_t logfile_buf[4096]; - setvbuf(logfile, logfile_buf, _IOLBF, sizeof(logfile_buf)); - } -#else - setvbuf(logfile, NULL, _IOLBF, 0); -#endif - stdout = logfile; - stderr = logfile; - } + if (!logfile) + logfile = stderr; } void cpu_set_log_filename(const char *filename) { - logfilename = strdup(filename); + logfile = fopen(filename, "w"); + if (!logfile) { + perror(filename); + _exit(1); + } +#if !defined(CONFIG_SOFTMMU) + /* must avoid mmap() usage of glibc by setting a buffer "by hand" */ + { + static uint8_t logfile_buf[4096]; + setvbuf(logfile, logfile_buf, _IOLBF, sizeof(logfile_buf)); + } +#else + setvbuf(logfile, NULL, _IOLBF, 0); +#endif + stdout = logfile; + stderr = logfile; } /* mask must never be zero, except for A20 change call */ diff --git a/tools/ioemu/vl.c b/tools/ioemu/vl.c index 50a0a5b0e0..d5f3dd3f83 100644 --- a/tools/ioemu/vl.c +++ b/tools/ioemu/vl.c @@ -7146,9 +7146,7 @@ int main(int argc, char **argv) nb_nics = 0; /* default mac address of the first network interface */ - /* init debug */ - sprintf(qemu_dm_logfilename, "/var/log/xen/qemu-dm.%ld.log", (long)getpid()); - cpu_set_log_filename(qemu_dm_logfilename); + /* Init logs to stderr to start with */ cpu_set_log(0); optind = 1; @@ -7527,7 +7525,7 @@ int main(int argc, char **argv) semihosting_enabled = 1; break; case QEMU_OPTION_domainname: - strncat(domain_name, optarg, sizeof(domain_name) - 20); + strncpy(domain_name, optarg, sizeof(domain_name) - 1); break; case QEMU_OPTION_d: domid = atoi(optarg); @@ -7550,6 +7548,10 @@ int main(int argc, char **argv) } } + /* Now send logs to our named config */ + sprintf(qemu_dm_logfilename, "/var/log/xen/qemu-dm-%s.log", domain_name); + cpu_set_log_filename(qemu_dm_logfilename); + #ifndef _WIN32 if (daemonize && !nographic && vnc_display == NULL && vncunused == 0) { fprintf(stderr, "Can only daemonize if using -nographic or -vnc\n"); -- 2.30.2